package com.kavian.test.image;

import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;
/**
 * @Filename:    test→com.kavian→TestImage.java
 * @Description:   图片合并
 * @Copyright:   Copyright (c)2012 
 * @Company:     qoocc 
 * @author:   	kavian 
 * @version:    1.0  
 * Create at:  2012-5-16下午4:14:37
 *  
 * Modification History:  
 * Date                      Author           Version     Description  
 * ------------------------------------------------------------------  
 * 2012-5-16下午4:14:37   	     Administrator          1.0        1.0 Version
 */
public class MergeImage {

	public static void main(String args[]) {
		try {
			// 读取第一张图片
			File fileOne = new File("D:\\1.jpg");
			BufferedImage ImageOne = ImageIO.read(fileOne);
			int width = ImageOne.getWidth();// 图片宽度
			int height = ImageOne.getHeight();// 图片高度

			// 从图片中读取RGB
			int[] ImageArrayOne = new int[width * height];
			ImageArrayOne = ImageOne.getRGB(0, 0, width, height, ImageArrayOne,
					0, width);

			// 对第二张图片做相同的处理
			File fileTwo = new File("D:\\2.jpg");
			BufferedImage ImageTwo = ImageIO.read(fileTwo);
			int width2 = ImageTwo.getWidth();
			int height2 = ImageTwo.getHeight();

			int[] ImageArrayTwo = new int[width2 * height2];
			ImageArrayTwo = ImageTwo.getRGB(0, 0, width2, height2,
					ImageArrayTwo, 0, width2);

			// 生成新图片
			// BufferedImage ImageNew = new BufferedImage(width * 2, height,
			// BufferedImage.TYPE_INT_RGB);
			int newWidth = width + width2;
			int newHeight = height;
			if (height < height2) {
				newHeight = height2;
			}

			BufferedImage ImageNew = new BufferedImage(newWidth, newHeight,
					BufferedImage.TYPE_INT_RGB);
			ImageNew.setRGB(0, 0, width, height, ImageArrayOne, 0, width);// 设置左半部分的RGB
			// ImageNew.setRGB(width, 0, width, height, ImageArrayTwo, 0,
			// width);// 设置右半部分的RGB
			// ImageNew.setRGB(0, height, width,
			// ImageOne.getHeight()+ImageTwo.getHeight(), ImageArrayTwo, 0,
			// width);// 设置右半部分的RGB
			ImageNew.setRGB(width, 0, width2, height2, ImageArrayTwo, 0,
					width2);// 设置右半部分的RGB

			File outFile = new File("d:\\out.jpg");
			ImageIO.write(ImageNew, "jpg", outFile);// 写图片
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
